Cloud computing allows a large number of users ubiquitous access to shared computer resources. Typically, a user can use (i.e. provision) a shared network resource rapidly and with minimal management oversight. Benefits from employing shared network resources has lead to the nearly ubiquitous adoption of cloud computing by most internet-based services and applications.
However, in spite of its manifest benefits, a shared network resource can be a source of interdependences and coupling between different functions and users. For example, coupling occurs when a use of a shared network resource by a first user overwhelms the resource and a second user is left without access. In some circumstances the second user requires the shared network resource to complete a task. In this case the task will remain undone as long as the shared network resource is being used by the first user. This is sometimes referred to as the “noisy neighbor” problem.
A challenge for resource sharing is that each use of a resource is likely to differ in time it takes to complete as well as the stress it places on the resource. This problem is not solved by allocating a fixed number of uses of the shared network resource to each user over a given time period, as a user with more intensive uses will monopolize the resource.
Therefore a need exists for methods and systems for ensuring fair and reliable access to a shared network resource, and in particular to RESTful network resources (i.e., a resource that complies with the representational state transfer (i.e., REST model).